package com.ktgj.hotel.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ktgj.customer.api.domain.AssistProductVoApi;
import com.ktgj.hotel.domain.rooms.CreditCard;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class CreateHotelOrderVo {
    public CreateHotelOrderVo() {
        this.productamount = new ArrayList<>();
    }

    /**
     * 合作伙伴订单确认号
     * */
    public String AffiliateConfirmationId;
    /**
     * 酒店id
     * */
    public String HotelId;
    /**
     * 销售房型编号
     * */
    public String RoomTypeId;
    /**
     * 产品编号（传入房型详情返回的产品编号）
     * */
    public Integer RatePlanId;
    /**
     * 入住时间
     * */
    public String ArrivalDate;
    /**
     * 离店日期
     * */
    public String DepartureDate;
    /**
     * 支付类型
     * */
    public String PaymentType;
    /**
     * 房间数量
     * */
    public Integer NumberOfRooms;
    /**
     * 客人数量
     * */
    public Integer NumberOfCustomers;
    /**
     * 最早到店时间
     * */
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    public String EarliestArrivalTime;
    /**
     * 最晚到店时间
     * */
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    public String LatestArrivalTime;
    /**
     * 币种类型
     * */
    public String CurrencyCode;
    /**
     * 房价
     * */
    public BigDecimal TotalPrice;
    /**
     * 客人访问IP（如127.0.0.1）
     * */
    public String CustomerIPAddress;
    /**
     * 确认类型
     * */
    public String ConfirmationType;
    /**
     * 是否需要发票（前台现付订单发票由酒店开具；预付订单的发票有两种开具方式：收款方开具或酒店开具。）
     * */
    public boolean IsNeedInvoice;
    /**
     * 客人信息
     * */
    public List<OrderRoom> orderRooms;
    /**
     * 联系人电话
     * */
    public ContactVo Contact;
    /**
     * 创建订单并支付（false）
     * */
    public boolean IsCreateOrderOnly;
    /**
     * 是否已担保或已付款(true)
     * */
    public boolean IsGuaranteeOrCharged;
    public BigDecimal payAmount;
    public String Options;
    public String HotelName;
    public String Name;
    public Long[] passengerId;

    /**
     * 积分
     */
    public Long points;
    /**
     * 优惠券id
     */
    public Long couponId;
    /**
     * 总金额
     */
    public BigDecimal totalsalePrice;
    /**
     * 带小数点的原价
     */
    public BigDecimal basePrice;
    /**
     * 预留款（金币）
     */
    public BigDecimal usedDeposit;
    /**
     * 辅营产品id
     */
    public List<Integer> productId;
    /**
     * 辅营产品价格
     */
    public List<AssistProductVoApi> productamount;
    /**
     * 商品库shopperid
     * */
    public String ShopperProductId;
    /**
     * 二级供应商id
     * */
    public String SubSupplierId;
    /**
     * 供应商id
     * */
    public String SupplierId;
    /**
     * 酒店code
     * */
    public String HotelCode;
    /**
     * 成人数
     * */
    public int NumberOfAdults;
    /**
     * 产品唯一标识
     * */
    public String LittleMajiaId;
    /**
     * 商品唯一标识
     * */
    public String GoodsUniqId;
    /**
     * 是否使用金币
     * */
    public boolean useDeposit;
    /**
     * 是否使用积分
     * */
    public boolean usePoint;
    /**
     * 订单类型
     * */
    public Long orderType;
    /**
     * 信用卡信息
     * */
    public CreditCard CreditCard;
}
